#include <iostream>  
#include <fstream>  
#include <string>  
#include <vector>  
  
// 计算走完n级台阶的总共走法数  
int countSteps(int n) {  
    std::vector<int> dp(n + 1, 0);  
    dp[0] = 1;  
    dp[1] = 1;  
  
    for (int i = 2; i <= n; i++) {  
        dp[i] = dp[i - 1] + dp[i - 2];  
    }  
  
    return dp[n];  
}  
  
int main() {  
    std::ifstream inputFile("input.txt"); // 打开输入文件  
    std::ofstream outputFile("output.txt"); // 打开输出文件  
  
    if (!inputFile) {  
        std::cerr << "无法打开 input.txt 文件" << std::endl;  
        return 1;  
    }  
  
    if (!outputFile) {  
        std::cerr << "无法创建 output.txt 文件" << std::endl;  
        return 1;  
    }  
  
    int n;  
    if (inputFile >> n) { // 从输入文件读取台阶数  
        int numSteps = countSteps(n); // 计算总共走法数  
        outputFile << numSteps << std::endl; // 将结果写入输出文件  
  
        std::cout << "走完 " << n << " 级台阶的总共走法数为 " << numSteps << " 种\n已写入 output.txt 文件" << std::endl; // 输出结果到控制台  
    } else {  
        std::cerr << "无法读取台阶数" << std::endl;  
        return 1;  
    }  
  
    inputFile.close(); // 关闭输入文件  
    outputFile.close(); // 关闭输出文件  
  
    return 0;  
}  